IF exists(SELECT * FROM dbo.sysobjects WHERE name='geefAfwezigen' AND xtype='P') 
BEGIN
	DROP PROCEDURE geefAfwezigen
END
GO

CREATE procedure geefAfwezigen(
@min integer)
as
set nocount on

-- Een tijdelijke tabel, die de XML-gegevens zal bevatten in de eerste rij, eerste kolom (T-SQL kan nl. geen text exporteren).
create table #werk  (xml text null)
insert into #werk 
values ('')

-- Een pointer naar de XML-tekst:
declare @@ptrval varbinary(16)
select @@ptrval = textptr(xml) from #werk

----------------------------------------------------------------------------
--             Header
----------------------------------------------------------------------------

updatetext #werk.xml @@ptrval null 0 '<?xml version="1.0" encoding="ISO-8859-1" ?>'
set nocount on

----------------------------------------------------------------------------
--             Tekst
----------------------------------------------------------------------------
declare @datum dateTime

declare @dag varchar(100)
declare @dagdeel varchar(100)
declare @reden varchar(100)
declare @klas varchar(100)
declare @naam varchar(120)

set @datum = dateAdd(d,@min,getDate())

declare deCursor cursor local for 
   select l.voornaam + ' ' + l.achternaam,l.klas,
	a.dagdeel,a.reden, a.datum  
   from leerlingen.dbo.afwezigheden as a
 	left join leerlingen.dbo.leerlingen as l
	on l.inschrijvingsNr = a.inschrijvingsNr
   where datePart(dy,datum) = datepart(dy,@datum)
   order by l.klas,l.naam1,a.dagdeel DESC
   for read only

set @dag = '<dag>' + convert(varchar,@datum,103)  + '</dag>'
updatetext #werk.xml @@ptrval null 0 '<afwezigen>'
updatetext #werk.xml @@ptrval null 0 @dag
updatetext #werk.xml @@ptrval null 0 '<leerlingen>'
     
open deCursor
fetch next from deCursor into @naam, @klas, @dagdeel, @reden, @datum
while (@@fetch_status=0)
  begin
    set @naam = '<naam>' + isNull(@naam,'') + '</naam>'
    set @klas = '<klas>' + isNull(@klas,'') + '</klas>'
    set @reden = '<reden>' + isNull(@reden,'') + '</reden>'
    set @dagdeel = '<dagdeel>' + isNull(@dagdeel,'') + '</dagdeel>'
    updatetext #werk.xml @@ptrval null 0 '<leerling>'
    updatetext #werk.xml @@ptrval null 0 @naam
    updatetext #werk.xml @@ptrval null 0 @klas
    updatetext #werk.xml @@ptrval null 0 @reden
    updatetext #werk.xml @@ptrval null 0 @dagdeel
    updatetext #werk.xml @@ptrval null 0 '</leerling>'
    fetch next from deCursor into @naam, @klas, @dagdeel, @reden, @datum
  end
updatetext #werk.xml @@ptrval null 0 '</leerlingen>'
updatetext #werk.xml @@ptrval null 0 '</afwezigen>'

select * from #werk
return